/**
 * path: 是node的内置模块
 * 
 * 终端中如何写node代码？
 * 答：在终端中输入node命令，然后回车即可，之后就可以在终端中写js代码了
 * 
 * 如何关闭终端中的写代码功能呢？
 * 答：可以连续按两次 ctrl + c
 * 
 * 我们常用的path中的方法，path.join("路径一","路径二")
 *  作用：就是将"路径一"和"路径二"拼接在一起
 * 
 * */ 

const fs = require("fs");
const path = require("path");

// 相对路径：执行node命令的时候，找文件是相对于执行目录进行查找
// 因此用相对路径读取文件会有一个问题，就是当我们在其他目录下来执行js文件的话，，会读取不到txt文件
// 如何解决呢 ？答：我们可以把相对路径改为绝对路径
// 这个绝对路径如何获取到呢？通过__dirname来获取到，__dirname是node内置属性，只要在node环境中都能拿来直接使用
// 注意：__dirname他的值是相对于代码的所在目录获取的绝对路径，因此这个__dirname的值无论你在哪个目录下执行都是不会变的。

// console.log(21,__dirname);
// let res = fs.readFileSync(path.join(__dirname,"./data/01.txt"))
// console.log(18,res);

// 相对路径，是相对于执行目录（打开的终端中的目录）来查找文件的
// 比如：我在 "G:\传智播客\students\前端-71期\class_code_71\nodejs> "来执行17-path模块.js文件
// 那么在js文件中的读取文件代码，是相对于nodejs这个目录进行查找，也就是在nodejs文件夹中来找data/01.txt文件
// 显然我们的nodejs文件夹中没有讲data文件夹，因此读取文件就失败了
// 所以这个就是利用相对路径读取文件的一个缺点了，那如何解决这个缺点呢？答：使用绝对路径来设置读取文件的路径。
// 如何得到js文件所在目录的绝对路径呢 ？答：可以通过node中内置属性 __dirname来获取
// __dirname：值是相对获取__dirname值所在目录的，因此他的值是永远不会变的（除非你把当前的js文件挪到其他文件里面）
// let res = fs.readFileSync("./data/01.txt")
// console.log(29,res);
console.log(__dirname);
console.log(path.join(__dirname, "./data/01.txt"));
